Placement of user interface elements based on a window entry or exit point

ABSTRACT

Disclosed are various embodiments for placing user interface elements in a network page. A first network page is generated with client side code embedded therein that can track navigation input data associated with the user. The navigation input data can be interpreted to determine whether the user has a tendency to idle an input device in a particular area of the network page or exhibit any other behavior that allows a high value area to be identified.

BACKGROUND

Users of a content delivery system often interact with the system via anetwork on a client. Users often manipulate a user interface on a clientthat is in the form of a network page encoded by the content system.User interface elements are often placed away from where a user has atendency to hover an input device and/or mouse pointer. Content systemsare often unable to customize a network page encoded for a client, andimportant user interface elements can be located some distance away fromwhere a user has a tendency to locate a mouse pointer.

BRIEF DESCRIPTION OF THE DRAWINGS

Many aspects of the present disclosure can be better understood withreference to the following drawings. The components in the drawings arenot necessarily to scale, emphasis instead being placed upon clearlyillustrating the principles of the disclosure. Moreover, in thedrawings, like reference numerals designate corresponding partsthroughout the several views.

FIG. 1 is a drawing of a networked environment according to variousembodiments of the present disclosure.

FIG. 2 is a drawing of a network page generated in the networkedenvironment of FIG. 1 according to various embodiment of the presentdisclosure.

FIG. 3 is a drawing of a navigation input data map generated by the userinterface placement application in the networked environment of FIG. 1according to various embodiment of the present disclosure.

FIG. 4 is a drawing of a network page generated in the networkedenvironment of FIG. 1 according to various embodiment of the presentdisclosure.

FIG. 5 is a drawing of a network page generated in the networkedenvironment of FIG. 1 according to various embodiment of the presentdisclosure.

FIG. 6 is a drawing of a network page generated in the networkedenvironment of FIG. 1 according to various embodiment of the presentdisclosure.

FIG. 7 is a drawing of a navigation input data map generated by the userinterface placement application in the networked environment of FIG. 1according to various embodiment of the present disclosure.

FIG. 8 is a drawing of a network page generated in the networkedenvironment of FIG. 1 according to various embodiment of the presentdisclosure.

FIG. 9 is a flowchart showing execution of the content delivery systemand/or user interface element placement application from the networkedenvironment of FIG. 1

FIG. 10 is a schematic block diagram that provides one exampleillustration of a computing device employed in the networked environmentof FIG. 1 according to various embodiments of the present disclosure.

DETAILED DESCRIPTION

Embodiments of this disclosure are directed to systems and methods thatfacilitate placement of user interface elements on a content page and/ornetwork page. The embodiments described herein can encode a network pagethat is transmitted to and rendered on a client that also facilitatesthe tracking of movement of an input device in communication with theclient. Accordingly, embodiments of the disclosure can identify one ormore high value areas in a browser window associated with a browserexecuted on the client to view a network page. These high value areascan include areas associated with a browser window where, as oneexample, a user has a tendency to idle a pointer associated with aninput device. Other examples shall be discussed herein, but embodimentsof this disclosure can detect user tendencies associated with an inputdevice and adjust placement of user interface elements to suit thesetendencies.

Accordingly, with reference to FIG. 1, shown is a networked environment100 according to various embodiments. The networked environment 100includes one or more computing devices 103, and one or more clientdevices 106 coupled to a network 113. The network 113 includes, forexample, the Internet, intranets, extranets, wide area networks (WANs),local area networks (LANs), wired networks, wireless networks, or othersuitable networks, etc., or any combination of two or more suchnetworks.

The computing device(s) 103 may comprise, for example, a server computeror any other system providing computing capability. Alternatively, aplurality of computing devices 103 may be employed that are arranged,for example, in one or more server banks or computer banks or otherarrangements. For example, a plurality of computing devices 103 togethermay comprise, for example, a cloud computing resource, a grid computingresource, and/or any other distributed computing arrangement. Suchcomputing devices 103 may be located in a single installation or may bedispersed among many different geographical locations. In oneembodiment, the computing device 103 represents a virtualized computersystem executing on one or more physical computing systems. For purposesof convenience, the computing device 103 is referred to herein in thesingular. Even though the computing device 103 is referred to in thesingular, it is understood that a plurality of computing devices 103 maybe employed in the various arrangements as described above.

Various applications and/or other functionality may be executed in thecomputing device 103 according to various embodiments. Also, variousdata is stored in a data store 116 that is accessible to the computingdevice 103. The data store 116 may be representative of a plurality ofdata stores as can be appreciated. The data stored in the data store116, for example, is associated with the operation of the variousapplications and/or functional entities described below. In oneembodiment, the data store 116 can be implemented in one computingdevice 103, and the other elements depicted can be implemented in othercomputing devices 103 as can be appreciated.

The content delivery system 119 is one example of an application that isexecuted on a computing device 103 in order to provide browser access tocontent that is served over the network 113. To this end, the contentdelivery system 119 acts as a gateway through which requests arereceived and responses transmitted to the clients 106. It is understoodthat other applications and components, such as, an applicationimplementing the hypertext transport protocol, may be executed on thecomputing device 103 beyond those described herein.

The computing device 103 may, in some embodiments, provide manydifferent applications that are involved, for example, in providingservices offered by an online merchant, a search engine, or otherservices that involve delivering content over a network 113. Forexample, the computing device 103 may execute applications thatfacilitate the ordering of goods online by customers by manipulating auser interface on a client 106. The computing device 103 may alsoexecute a search engine, search indexer, etc., that facilitate thefunctionality of a search engine.

The content delivery system 119 can facilitate the generating of dynamicnetwork pages such as, for example, dynamic web pages that are providedto clients 106 in response to various requests. In order to providenetwork pages, the content delivery system 119 may access the data store116 to obtain network page data 131, which can include network pagetemplates 133, various content items 135, and data 137. The network pagetemplates 133 act as templates of network pages, such as dynamic networkpages that may ultimately be populated with the content 135 and data 137also stored within the data store 116 or in some way accessible to thecontent delivery system 119. The content items 135 can specify userinterface elements that are arranged in a network page, such as, but notlimited to, imagery, a page header, form elements (e.g., text entryfields, buttons, etc.), and other user interface elements as can beappreciated. As contemplated herein, the data store 116 may berepresentative of many different data stores included in a given system.The data store 116 may comprise, for example, a database or other datastorage structure.

The network page templates 133 can specify the placement of userinterface elements with which a user on a client 106 can interact. As anon-limiting example, in an online merchant site implemented by thecontent delivery system 119, the network page template 133 can specifythe placement of text, imagery, buttons, etc., which can include userinterface elements that facilitate the purchase of an item (e.g., an“Add to Cart” button). As an alternative example, network templates 133for a search engine implemented by the content delivery system 119 canspecify where imagery, search forms, search results, etc. are placed ona network page generated by the content delivery system 119 for a useron a client 106. To facilitate the placement of user interface elementsaccording to embodiments of the disclosure, the computing device 103 canalso execute a user interface element placement application 125. Theuser interface element placement application 125 can facilitate trackingof navigation input data caused by a user interacting with a client 106.Depending on the navigation input data received from a client 106, theuser interface element placement application 125 can detect high valueareas of a browser window in which user interface elements can beplaced.

The data store 116 can also include data about users 147 of the contentdelivery system 119. In some embodiments, each user 147 can beassociated with various identification data, profile data, or other dataabout the user. Additionally, session 149 data can be stored for eachuser 147 in a content delivery system 119, which can store dataregarding navigation input data captured during one or more sessionsassociated with the user 147. For example, the content delivery system119 can capture data relating to movement of an input device (e.g., amouse, a keyboard, etc.) and store it in session 149 data associatedwith the user 147. In this way, the content delivery system 119 cantailor a user interface in a network page generated for the user, aswill be described in further detail herein.

The client device 106 is representative of a plurality of client devices106 that may be coupled to the network 113. The client device 106 maycomprise, for example, a processor-based system, such as a computersystem. Such a computer system may be embodied in the form of a desktopcomputer, a laptop computer, a personal digital assistant, a mobiledevice (e.g. cellular telephone, smart phone, etc.), set-top box, musicplayers, web pads, tablet computer systems, or other devices with likecapability. The client device 106 includes a display device 141 uponwhich various network pages 126 and other content may be rendered.

The client device 106 may be configured to execute various applications,such as a browser application 143 and/or other applications. The browserapplication 143 may be executed in a client device 106, for example, toaccess and render network pages 126, such as web pages, or other networkcontent served up by the computing device 103 and/or other servers. Theclient device 106 may be configured to execute applications beyondbrowser application 143 such as, for example, an email client forreceiving email generated by the content delivery system 119, instantmessage applications, an application specifically tailored to accessresources of the computing device 103, and/or other applications. Inembodiments of the present disclosure, a user on a client 106 canpurchase and/or view products via the content delivery system 119executed by the computing device 103 by manipulating a user interfacerendered on the client 106.

A network page 126 may be, for example, a dynamic network page such as adynamic web page or other type of network page. For example, whilenavigating through the various network pages 126 made available throughthe content delivery system so as to order various goods, the browserapplication 143 may send a request for a specific network page 126 tothe content delivery system 119. The content delivery system 119interfaces with the appropriate application(s) executed on the computingdevice 103 as well as any data stores 116 containing data necessary toencode a network page 126 to generate the desired network page 126 thatis then transmitted to the browser application 143 executed on theclient 106. In one embodiment, the content delivery system 119 canobtain a network page template 133 corresponding to a requested networkpage 126 and populate the network page template 133 as well as variouscontent 135 and other data 137 needed to generate the network page 126.

Next, a general description that provides one example of the operationof the various components of the networked environment 100 is provided.The content delivery system 119 can deliver a network page 126 over anetwork 113 for viewing by a user on a client 106 in a browserapplication 143. As noted above, the content delivery system 119 canfacilitate any type of content system, such as an electronic commercesystem, a search engine, a blog network, and others as can beappreciated. In one embodiment of this disclosure, the content deliverysystem 119 can generate a network page 126 for transmission to a clientthat includes code which allows the content delivery system 119 toreceive data regarding the navigation input of a user as the userinteracts with the network page 126 in the browser application 143. Theuser interface element placement application 125 can identify highvalues areas of a network page 126 and/or browser window of the browserapplication 143. These high value areas can be identified based at leastupon on the behavior of the user as interpreted through the navigationinput data received from the client 106. User interface elements towhich an operator desires for a user to be drawn to and with which theoperator desires a user to interact.

As one example, the content delivery system 119 can embed code within anetwork page 126 that tracks a position of a pointer associated with aninput device (e.g., a mouse, a touchscreen, etc.) and transmits thelocation of the pointer within a browser window in which the networkpage 126 is rendered to the user interface element placement application125. In one embodiment, the content delivery system 119 can embedJavascript code in the network page 126 to accomplish the above, andother languages should be appreciated. The user interface elementplacement application 125 can then analyze the navigation input datareceived from the client 106 in order to identify high value areas ofthe browser window as well as determine placement of user interfaceelements in the high value areas for successive network pages 126 thatare encoded by the content delivery system 119 and transmitted to theclient 106. In one embodiment, the embedded code can sample a mousepointer position on a periodic basis, and transmit the mouse pointerposition to the user interface element placement application 125 asnavigation input data of the user. Accordingly, this navigation inputdata that is collected and transmitted over time allows the userinterface element placement application 125 to determine various aspectsof the behavior and/or tendencies of the user's interactions with anetwork page 126 that is encoded by the content delivery system 119.

For example, the user interface element placement application 125 candetermine if a user 147 has a tendency to hover a mouse pointer over aparticular location in a browser window of the browser application 143in which the network page 126 is rendered. In other words, the user mayhave a tendency to, when viewing and/or interacting with content in anetwork page 126, idle the mouse pointer over or near a particular areaof a browser window displaying the network page 126. In this example,the user interface element placement application 125 can determine ifnavigation input data received from a client 106 rendering a networkpage 126 encoded by the content delivery system 119 reveals that theuser positions a pointer in or near an area of the screen more oftenthan others. If the application 125 makes such a determination, the userinterface element placement application 125 can identify this area of abrowser window as a high value area.

In the above example, the user interface element placement application125 can be tuned with thresholds so that just because higher levels ofnavigation input occur in a particular area of a browser window relativeto others, such behavior is not always identified as a user tendencythat causes adjustment of placement of user interface elements. In otherwords, in one embodiment, the user interface element placementapplication 125 can be tuned such that the navigation input datareceived from the client 106 must reveal that the amount of navigationinput in a particular area of a browser window exceeds the amount ofinput in other areas of the screen by a predefined threshold, such as aminimum percentage of time the user spends viewing the network page 126,so that false positive high value areas are not identified. As oneexample, the user interface element placement application 125 can betuned such that in order to identify a high value area, the navigationinput must reflect that the user hovers a mouse pointer over a one incharea of the browser window for at least fifty percent of the time theuser spends viewing the network page 126. Other examples of establishingsuch predefined thresholds should be appreciated.

As another example of identifying high value areas of a network page126, if the user has a tendency to idle the mouse pointer outside thebrowser window of the browser application 143 when viewing a networkpage 126, Javascript code or other client side code in a network page126 can identify an entry point and/or exit point of the mouse pointerfrom the network page 126. The client side code embedded in the networkpage 126 by the content delivery system 119 can also identify the amountof time the mouse pointer is outside the browser window.

Accordingly, with this entry point and/or exit point data, the userinterface element placement application 125 can determine whether theuser causes a mouse pointer to exit and/or enter network page 126rendered in the browser window in a particular area of the network page126 more often than others. Such an area of the network page 126 can beidentified as a high value area, as the area can correspond to an areaoff the network page 126 and/or browser window in which the user hoversa mouse pointer. The user interface element placement application 125can identify a high value area on the basis of identifying an entrypoint, and an exit point, or a combination of both an entry point and anexit point that occurs in navigation input data received from the client106 more than other entry points and/or exit points. The user interfaceelement placement application 125 can also identify high value areas onthe basis of entry points and/or exit points subject to predefinedthresholds as described above.

As another example of identifying high values areas of a network page126, the user interface element placement application 125 can determinean area of the network page 126 in which a higher level of navigationinput occurs relative to other areas of the network page 126.Accordingly, in contrast to the above examples, which are based onidentifying those areas within or outside a network page 126 in which auser, in one non-limiting example, idles a mouse pointer, the userinterface element placement application 125 can determine whether thenavigation input data reveals an area of the network page 126 in which auser provides high levels of navigation input.

Accordingly, in one embodiment, when a user 147 requests a network page126 via a client 106, the content delivery system 119 can establish asession 149 that corresponds to the user 147 in the data store 116. Theuser interface element placement application 125 can receive navigationinput data from the client 106 and store the navigation input data insession 149 data in the data store 116. The user interface elementplacement application 125 can analyze session data across a plurality ofnetwork page 126 views associated with a user in order to identify highvalue areas of a browser window in which a network page 126 is renderedon a client. In this way, the user interface element placementapplication 125 can identify high value areas by analyzing navigationinput data associated with one or more sessions of a user, which caninclude many network page 126 views. Accordingly, high value areas of abrowser window associated with a particular user can be more accuratethan an identification of high value areas based upon analysis of asingle network page 126 view. Additionally, the user interface elementplacement application 125 can identify high value areas associated withnavigation input data of a user 147 and store the high value areas inthe data store 116. Therefore, the content delivery system 119 can placeuser interface elements in high value areas each time the user 147accesses a network site served by the content delivery system 119.

Reference is now made to FIG. 2, which continues discussion of theidentification of high value areas of a network page 126 as well asplacement of user interface elements in the identified high value areas.FIG. 2 depicts a network page 126 generated by the content deliverysystem 119 and transmitted to a client 106 (FIG. 1). In the illustratedexample, the network page 126 can include client side code, such asJavascript code, that detects a location of a mouse pointer on aperiodic basis and transmits navigation input data that reflects thelocation of the mouse pointer across a session 149 and/or page view tothe user interface element placement application 125.

In the depicted example, the user interface element placementapplication 125 can determine, based on at least the navigation inputdata received from the client 106, that a user idled the mouse pointer201 in the depicted locations in varying degrees. These varying degrees,for ease of depiction, are illustrated by the varying levels ofconcentric circles around the depicted mouse pointers 201. Accordingly,upon identifying the areas in which the mouse pointer 201 is left idleby a user and the varying degrees to which the mouse pointer 201 is leftidle in these areas, the user interface element placement application125 can generate a navigation input data map, which is depicted in FIG.3.

Reference is now made to FIG. 3, which depicts a non-limitingillustration of a navigation input data map by the user interfaceelement placement application 125 that is employed to identify highvalue areas of the network page 126 and/or browser window of a browserapplication 143. In the depicted example, the user interface elementplacement application 125 can divide the network page 126 into variouszones 403, and identify which zone 403 an identified high value areafalls within. In the example of FIGS. 2 and 3, the user interfaceelement placement application 125 is identifying high values areas of anetwork page 126 based at least upon one or more areas 405 in which theuser idles a mouse pointer most often during a page view, a session,and/or across multiple sessions. Therefore, in the depicted example, theuser interface element placement application 125 has determined that theuser has idled the mouse pointer most often in the areas 405 a, 405 b,so these areas 405 a, 405 b can be identified as high value areas.

Accordingly, the user interface element placement application 125 canidentify a zone 403 a of the network page 126 in which the high valueareas are located. It should be appreciated that the high value areascould span multiple zones 403 of the network page 126, and that the userinterface element placement application 125 could therefore identifymultiple zones 403 in which high value areas appear. Upon identifyingthe zone 403 a in which the one or more high value areas are located,the user interface element placement application 125 can, incoordination with the content delivery system 119, facilitate placementof user interface elements.

Therefore, reference is now made to FIG. 4, which continues the exampleof FIGS. 2 and 3. As noted above in reference to the non-limitingexample of FIG. 3, the user interface element placement application 125has identified a zone 403 a of the network page 126 in which theidentified high value area is located. Accordingly, the user interfaceelement placement application 125 can facilitate placement of userinterface elements that are closer to these high value areas, as theuser has demonstrated a tendency to idle a mouse pointer in or nearthese areas. These user interface elements can include those with whichan operator of a content delivery system 119 wishes to encourage a userto interact. Accordingly, in this example, the content delivery system119 can encode a network page with purchasing user interface elements507 in the zone 403 a corresponding with the identified high valueareas. It should be appreciated that the content delivery system 119 canencode a network page 126 with other user interface elements, such as,an interactive advertisement, data input fields, or other user interfaceelements with which an operator may wish to encourage a user tointeract.

As depicted in the network pages 126 of FIG. 2, the purchasing userinterface elements 507 are located in zone 403 d, which are locatedfurther away from the zone 403 a in which the user has demonstrated atendency to idle a mouse pointer. Accordingly, by placing the purchasinguser interface elements 507 closer to the zone 403 a in which the userhas demonstrated a tendency to idle a mouse pointer, the user may, insome embodiments, be more likely to select one of these user interfaceelements.

To facilitate the generating of network pages 126 with certain userinterface elements placed in high value areas of the network page 126,the data store 116 can maintain multiple network page templates 133 fora given user interface. In the depicted examples, FIGS. 2 and 4 bothcorrespond to the same user interface, a product detail page, in thatthey display the same data to the user on a client 106. However, theseexamples differ in that they can be generated with different networkpage templates 133. A network page template 133, from which the networkpage 126 of FIG. 4 can be generated, places the purchasing userinterface elements 507 in a zone 403 a, where the high value areas arelocated. In this way, the content delivery system 119 can facilitateplacement of certain user interface elements in or near high value areaswhile still conforming to network page templates 133 that are defined inthe network page data 131.

Reference is now made to FIG. 5, which depicts an alternativenon-limiting example of a user interface element placement application125 identifying high value areas of a network page 126. In the depictedexample, a user on a client 106 may have a tendency to idle a mousepointer 509 outside of a network page 126 and/or a browser window of abrowser application 143. The user may exhibit this tendency if thenavigation input data transmitted to the user interface elementplacement application 125 reveals that the mouse pointer 509 is mostoften outside the network page 126 for a given network page view 126,session 149, or across multiple sessions 149 associated with the user147 data.

Additionally, in some embodiments, it may be infeasible or impossiblefor client side code, such as Javascript, that is embedded in a networkpage 126 by the content delivery system 119 to track navigation inputdata such as a mouse pointer position when the mouse pointer is notlocated within the network page 126. Accordingly, the client side codeembedded in the network page 126 by the content delivery system 119 cantransmit navigation input data to the user interface element placementapplication 125 that reflects an exit point 511 of the mouse pointer 509from the network page 126 and/or browser window.

Continuing the above example, reference is now made to FIG. 6. In thedepicted example, the user interface element placement application 125can receive navigation input data from client side code embedded in thenetwork page 126 by the content delivery system 119 and detect that auser has returned the mouse pointer 509 over the network page 126 and/orbrowser window of the browser application 143. Accordingly, the userinterface element placement application 125 can identify an entry point513 associated with this event. Therefore, the user interface elementplacement application 125 can identify both the exit point 511 (FIG. 5)and entry point 513 as potential high value areas, as the user hasdemonstrated a tendency to idle the mouse pointer 509 as well as atendency to enter and/or exit the network page 126 with the mousepointer at identifiable entry points and/or exit points.

Reference is now made to FIG. 7, which continues the example of FIGS. 5and 6. FIG. 7 depicts a navigation input data map generated by the userinterface element placement application 125, which divides the networkpage 126 into various zones. In contrast to the previous example ofFIGS. 2-4, in this example, the user interface element placementapplication 125 can generate a navigation input data map that dividesthe network page 126 into various zones across two dimensions.Accordingly, the user interface element placement application 125 canidentify the exit point 511 and/or entry point 513 as high value areasof the network page 126, and facilitate placement of certain userinterface elements in or near these high value areas. Therefore, theuser interface element placement application 125 can facilitate encodingof a network page 126 by the content delivery system 119 that placescertain user interface elements in one or both of these areas.

Therefore, reference is made to FIG. 8, which continues the example ofFIGS. 5-7. In the non-limiting example of FIG. 8, the user interfaceelement placement application 125 can facilitate choosing a network pagetemplate 133 that dictates placement of certain user interface elementsas close as possible to one or more of the identified high value areas.As an operator of a content delivery system that 119 may wish to definenetwork page templates 133 according to certain design rules, where userinterface elements are not placed in certain zones for aestheticreasons, the user interface element placement application 125 can choosea network page template 133 that places a purchasing user interfaceelement 814 as close as possible one or more of the identified highvalue areas (e.g., the exit point 511 and entry point 513). Therefore,in this example, the user interface element placement application 125and content delivery system 119 facilitate generating a network page 126where the purchasing user interface element 814 is placed in a zone 815that is as close as possible to the exit point 511 and entry point 513.It should be appreciated that in some embodiments, the user interfaceelement placement application 125 can treat an exit point 511 and entrypoint 513 as a high value areas, where the user has demonstrated atendency to idle a mouse pointer outside the network page 126 and/orbrowser window, and that in other embodiments, the user interfaceelement placement application 125 can treat both an exit point 511 andentry point 513 as high value areas.

Referring next to FIG. 9, shown is a flowchart that provides one exampleof the operation of a portion of the content delivery system 119 anduser interface element placement application 125 according to variousembodiments. It is understood that the flowchart of FIG. 5 providesmerely an example of the many different types of functional arrangementsthat may be employed to implement the operation of the portion of thecontent delivery system 119 and user interface element placementapplication 125 as described herein. As an alternative, the flowchart ofFIG. 9 may be viewed as depicting an example of steps of a methodimplemented in the computing device 103 (FIG. 1) according to one ormore embodiments.

Beginning with box 901, the user interface element placement application125 establishes a session 149 associated with a user of the contentdelivery system 119. The session 149 can be used to store data regardingnavigation input data associated with a user 147 during a given sessionor sessions. In box 903, a network page 126 (FIG. 1) is transmitted fromthe content delivery system 119 to a client 106 for rendering in abrowser application 143. As described above, the content delivery system119 can embed client side code in a network page 126 transmitted to theclient 106 that can track navigation input of a user (e.g., mousepointer position) and transmit the data to the user interface elementplacement application 125.

Accordingly, in box 907, the user interface element placementapplication 125 can receive navigation input data from the client 106and, in box 909, identify potential high value areas of the network page126 and/or browser window of the browser application 143 on a client106. If, in box 911, a high value area is identified as describedherein, in box 913 the user interface element placement application 125and content delivery system 119 can facilitate rendering of a secondnetwork page in which certain user interface elements (e.g., apurchasing user interface element) are placed in or near the identifiedhigh value areas.

With reference to FIG. 10, shown is a schematic block diagram of thecomputing device 103 according to an embodiment of the presentdisclosure. The computing device 103 includes at least one processorcircuit, for example, having a processor 953 and a memory 956, both ofwhich are coupled to a local interface 959. To this end, the computingdevice 103 may comprise, for example, at least one server computer orlike device. The local interface 959 may comprise, for example, a databus with an accompanying address/control bus or other bus structure ascan be appreciated.

Stored in the memory 956 are both data and several components that areexecutable by the processor 953. In particular, stored in the memory 956and executable by the processor 953 is a content delivery system 119,and potentially other applications. Also stored in the memory 956 may bea data store 116 and other data. In addition, an operating system may bestored in the memory 956 and executable by the processor 953.

It is understood that there may be other applications that are stored inthe memory 956 and are executable by the processors 953 as can beappreciated. Where any component discussed herein is implemented in theform of software, any one of a number of programming languages may beemployed such as, for example, C, C++, C#, Objective C, Java, JavaScript, Perl, PHP, Visual Basic, Python, Ruby, Delphi, Flash, or otherprogramming languages.

A number of software components are stored in the memory 956 and areexecutable by the processor 953. In this respect, the term “executable”means a program file that is in a form that can ultimately be run by theprocessor 953. Examples of executable programs may be, for example, acompiled program that can be translated into machine code in a formatthat can be loaded into a random access portion of the memory 956 andrun by the processor 953, source code that may be expressed in properformat such as object code that is capable of being loaded into a randomaccess portion of the memory 956 and executed by the processor 953, orsource code that may be interpreted by another executable program togenerate instructions in a random access portion of the memory 956 to beexecuted by the processor 953, etc. An executable program may be storedin any portion or component of the memory 956 including, for example,random access memory (RAM), read-only memory (ROM), hard drive,solid-state drive, USB flash drive, memory card, optical disc such ascompact disc (CD) or digital versatile disc (DVD), floppy disk, magnetictape, or other memory components.

The memory 956 is defined herein as including both volatile andnonvolatile memory and data storage components. Volatile components arethose that do not retain data values upon loss of power. Nonvolatilecomponents are those that retain data upon a loss of power. Thus, thememory 956 may comprise, for example, random access memory (RAM),read-only memory (ROM), hard disk drives, solid-state drives, USB flashdrives, memory cards accessed via a memory card reader, floppy disksaccessed via an associated floppy disk drive, optical discs accessed viaan optical disc drive, magnetic tapes accessed via an appropriate tapedrive, and/or other memory components, or a combination of any two ormore of these memory components. In addition, the RAM may comprise, forexample, static random access memory (SRAM), dynamic random accessmemory (DRAM), or magnetic random access memory (MRAM) and other suchdevices. The ROM may comprise, for example, a programmable read-onlymemory (PROM), an erasable programmable read-only memory (EPROM), anelectrically erasable programmable read-only memory (EEPROM), or otherlike memory device.

Also, the processor 953 may represent multiple processors 953 and thememory 956 may represent multiple memories 956 that operate in parallelprocessing circuits, respectively. In such a case, the local interface959 may be an appropriate network 113 (FIG. 1) that facilitatescommunication between any two of the multiple processors 953, betweenany processor 953 and any of the memories 956, or between any two of thememories 956, etc. The local interface 959 may comprise additionalsystems designed to coordinate this communication, including, forexample, performing load balancing. The processor 953 may be ofelectrical or of some other available construction.

Although the content delivery system 119, user interface elementplacement application 125, and other various systems described hereinmay be embodied in software or code executed by general purpose hardwareas discussed above, as an alternative the same may also be embodied indedicated hardware or a combination of software/general purpose hardwareand dedicated hardware. If embodied in dedicated hardware, each can beimplemented as a circuit or state machine that employs any one of or acombination of a number of technologies. These technologies may include,but are not limited to, discrete logic circuits having logic gates forimplementing various logic functions upon an application of one or moredata signals, application specific integrated circuits havingappropriate logic gates, or other components, etc. Such technologies aregenerally well known by those skilled in the art and, consequently, arenot described in detail herein.

The flowchart of FIG. 9 shows the functionality and operation of animplementation of portions of the user interface element placementapplication 125. If embodied in software, each block may represent amodule, segment, or portion of code that comprises program instructionsto implement the specified logical function(s). The program instructionsmay be embodied in the form of source code that comprises human-readablestatements written in a programming language or machine code thatcomprises numerical instructions recognizable by a suitable executionsystem such as a processor 953 in a computer system or other system. Themachine code may be converted from the source code, etc. If embodied inhardware, each block may represent a circuit or a number ofinterconnected circuits to implement the specified logical function(s).

Although the flowchart of FIG. 9 shows a specific order of execution, itis understood that the order of execution may differ from that which isdepicted. For example, the order of execution of two or more blocks maybe scrambled relative to the order shown. Also, two or more blocks shownin succession in FIG. 9 may be executed concurrently or with partialconcurrence. Further, in some embodiments, one or more of the blocksshown in FIG. 9 may be skipped or omitted. In addition, any number ofcounters, state variables, warning semaphores, or messages might beadded to the logical flow described herein, for purposes of enhancedutility, accounting, performance measurement, or providingtroubleshooting aids, etc. It is understood that all such variations arewithin the scope of the present disclosure.

Also, any logic or application described herein, including the contentdelivery system 119 and/or user interface element placement application125, that comprises software or code can be embodied in anynon-transitory computer-readable medium for use by or in connection withan instruction execution system such as, for example, a processor 953 ina computer system or other system. In this sense, the logic maycomprise, for example, statements including instructions anddeclarations that can be fetched from the computer-readable medium andexecuted by the instruction execution system. In the context of thepresent disclosure, a “computer-readable medium” can be any medium thatcan contain, store, or maintain the logic or application describedherein for use by or in connection with the instruction executionsystem. The computer-readable medium can comprise any one of manyphysical media such as, for example, electronic, magnetic, optical,electromagnetic, infrared, or semiconductor media. More specificexamples of a suitable computer-readable medium would include, but arenot limited to, magnetic tapes, magnetic floppy diskettes, magnetic harddrives, memory cards, solid-state drives, USB flash drives, or opticaldiscs. Also, the computer-readable medium may be a random access memory(RAM) including, for example, static random access memory (SRAM) anddynamic random access memory (DRAM), or magnetic random access memory(MRAM). In addition, the computer-readable medium may be a read-onlymemory (ROM), a programmable read-only memory (PROM), an erasableprogrammable read-only memory (EPROM), an electrically erasableprogrammable read-only memory (EEPROM), or other type of memory device.

It should be emphasized that the above-described embodiments of thepresent disclosure are merely possible examples of implementations setforth for a clear understanding of the principles of the disclosure.Many variations and modifications may be made to the above-describedembodiment(s) without departing substantially from the spirit andprinciples of the disclosure. All such modifications and variations areintended to be included herein within the scope of this disclosure andprotected by the following claims.

1. A non-transitory computer-readable medium embodying a programexecutable in a computing device, comprising: code that establishes asession associated with a user interacting with a network site via abrowser, the network site served by the computing device to a clientassociated with the user; code that generates a first network pageassociated with the network site, the network page generated with clientside code configured to track mouse pointer position data correspondingto a pointer and transmit the mouse pointer position data on a periodicbasis to the computing device; code that transmits the first networkpage to the client; code that receives the mouse pointer position datafrom the client executing the client side code; code that identifies,based at least in part upon the mouse pointer position data, at leastone area of a browser window as a high value area by determining whetherthe pointer is most often positioned outside of the browser windowrelative to being positioned inside the browser window, identifying anarea of the browser window that contains at least one exit point fromwhich the pointer most often exits the browser window or that containsat least one entry point from which the pointer most often enters thebrowser window, and identifying the area as the high value area; andcode that generates a second network page wherein a purchasing userinterface element is placed an area of the second network pagecorresponding to a location of the high value area.
 2. A system,comprising: at least one computing device; and a user interface elementplacement application executable in the at least one computing device,the user interface element placement application comprising: logic thatestablishes a session associated with a user interacting with a networksite via a browser, the network site served by the at least onecomputing device to a client associated with the user; logic thatgenerates a first network page associated with the network site fordisplay by the client; logic that receives navigation input dataassociated with an input device associated with the client, thenavigation input data corresponding to movement of a pointer associatedwith the input device in relation to a browser window; logic that tracksthe navigation input data relative to the browser window displaying thenetwork page and stores the navigation input data associated with thesession; and logic that identifies, based at least in part upon thestored navigation input data associated with the session, a portion ofthe browser window as a high value area by determining whether thepointer is most often positioned outside of the browser window relativeto being positioned inside the browser window, identifying an area ofthe browser window that contains at least one exit point from which thepointer most often exits the browser window or that contains at leastone entry point from which the pointer most often enters the browserwindow, and identifying the area as the high value area.
 3. The systemof claim 2, wherein the logic that generates the first network pagefurther comprises logic that embeds client-side code in the firstnetwork page, the client-side code configured to transmit the navigationinput data from the client to the at least one computing device.
 4. Thesystem of claim 3, wherein the client-side code detects a position ofthe pointer on a periodic basis and transmits to the at least onecomputing device the position of the pointer.
 5. The system of claim 2,further comprising logic that generates a second network page wherein atleast one user interface element is placed in an area of the secondnetwork page corresponding to the high value area.
 6. The system ofclaim 5, wherein the logic that generates the second network pagefurther comprises: logic that identifies a network page template inwhich the at least one user interface element is placed nearest the highvalue area; logic that retrieves the network page template from a datastore in communication with the at least one computing device; and logicthat encodes the second network page according to the network pagetemplate.
 7. The system of claim 6, wherein the at least one userinterface element is a hyperlink facilitating purchase of an item froman electronic commerce system.
 8. The system of claim 6, wherein the atleast one user interface element is a user interface element thatfacilitates receiving user input data from the client.
 9. A method,comprising the steps of: establishing, in at least one computing device,a session associated with a user interacting with a network site via abrowser, the network site served by the at least one computing device toa client associated with the user; encoding, via the at least onecomputing device, a first network page associated with the network sitefor display by the client; receiving, via the at least one computingdevice, navigation input data associated with an input device associatedwith the client, the navigation input data corresponding to movement ofa pointer associated with the input device in relation to a browserwindow; tracking, via the at least one computing device, the navigationinput data relative to the browser window displaying the network page;storing, via the at least one computing device, the navigation inputdata associated with the session; identifying, via the at least onecomputing device, based at least in part upon the stored navigationinput data associated with the session, a portion of the browser windowas a high value area by determining whether the pointer is most oftenpositioned outside of the browser window relative to being positionedinside the browser window, identifying an area of the browser windowthat contains at least one entry point from which the pointer most oftenenters the browser window or that contains at least one exit point fromwhich the pointer most often exits the browser window, and identifyingthe area as the high value area; and encoding, via the at least onecomputing device, a second network page wherein at least one userinterface element is placed in an area of the second network pagecorresponding to the high value area.
 10. The method of claim 9, whereinthe step of encoding the first network page further comprises embeddingclient-side code in the first network page, the client-side codeconfigured to cause the navigation input data to be transmitted from theclient to the at least one computing device.
 11. The method of claim 9,wherein the area comprises a first area and wherein the step ofidentifying the portion of the browser window as the high value areafurther comprises: identifying at least one exit point from which thepointer exits the browser window; identifying a second area of thebrowser window that contains at least one exit point from which thepointer most often exits the browser window; and identifying the secondarea as the high value area.
 12. The method of claim 9, wherein the stepof encoding the second network page further comprises the steps of:identifying a network page template in which the at least one userinterface element is placed nearest the high value area; retrieving thenetwork page template from a data store in communication with the atleast one computing device; and encoding the second network pageaccording to the network page template.
 13. The method of claim 9,wherein the at least one user interface element is a hyperlinkfacilitating purchase of an item from an electronic commerce system. 14.The method of claim 9, wherein the at least one user interface elementis a user interface element that facilitates receiving user input datafrom the client.